#pragma once

namespace he
{
	//! Bullet motion state implementation.
	class SceneNodeMotionState : public btMotionState, boost::noncopyable
	{
		// Attributes
	private:
		//! Scene node which state are we tracking.
		Ogre::SceneNode &m_SceneNode;
		//! Initial position.
		btTransform const m_InitialPos;

		// Operations
	private:
		//! Get the entity world transformation.
		virtual void getWorldTransform(btTransform &WorldTrans) const;
		//! Set the entity world transformation.
		virtual void setWorldTransform(btTransform  const &WorldTrans);

		// Construction/Destruction
	public:
		SceneNodeMotionState(Ogre::SceneNode &SceneNode, btTransform const &InitialPos);
	};
} /*he*/
